package com.example.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.domain.Dish;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.dto.DishDto;

import javax.servlet.http.HttpSession;

/**
* @author Administrator
* @description 针对表【dish(菜品管理)】的数据库操作Service
* @createDate 2022-04-30 10:08:57
*/
public interface DishService extends IService<Dish> {

    /**
     * 分页、参数查询
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    Page<Dish> getDishListForPage(Integer page, Integer pageSize, String name);

    /**
     * 将Page<Dish>映射为Page<DishDto>，以满足前端展示数据需要
     * @param dishPage
     * @return
     */
    Page<DishDto> dishToDishDto(Page<Dish> dishPage);

    /**
     * 删除单个或者多个
     * @param ids
     * @return
     */
    boolean deleteByIds(Long[] ids);

    /**
     * 按照ID更改商品是否起售状态
     * @param status
     * @param ids
     * @return
     */
    void dishStatusByStatus(Integer status, Long[] ids, HttpSession session);

    /**
     * 储存菜品以及菜品爱好等信息
     * @param dishDto
     */
    void saveWithFlavor(DishDto dishDto);

    /**
     * 回显菜品编辑页面数据
     * @param id
     * @return
     */
    DishDto getByIdWithFlavor(Long id);

    /**
     * 菜品编辑页面提交
     * @param dishDto
     */
    void updateWithFlavor(DishDto dishDto);
}
